/**
 * 
 */
package com.naiterui.ehp.bs.doctor.vo;

import com.naiterui.ehp.bs.doctor.utils.PropertyValueConstants;

/**
 * 账户修改类型枚举类
 * @author guoyongxiang
 * @since 2.0.0
 */
public enum AccChgTypeEnum {

    IN_CONS_IMG_TXT (PropertyValueConstants.ACC_CHANGE_TYPE_IN, 1, "图文咨询"),
    IN_CONS_TEL (PropertyValueConstants.ACC_CHANGE_TYPE_IN, 2, "电话问诊"),
    OUT_WITHDRAWAL (PropertyValueConstants.ACC_CHANGE_TYPE_OUT, 1, "提现");

    /**
     * 交易类型：<code>changeType</code>
     */
    private Integer changeType;
    /**
     * 交易来源：<code>source</code>
     */
    private Integer source;
    /**
     * 交易描述：<code>name</code>
     */
    private String name;

    /**
     * 构造函数
     * @param changeType
     * @param source
     * @param name
     */
    AccChgTypeEnum(Integer changeType, Integer source, String name) {
        this.changeType = changeType;
        this.source = source;
        this.name = name;
    }

    public static String getNameBySource(Integer type, Integer source) {
        AccChgTypeEnum[] actArr = AccChgTypeEnum.values();
        for (AccChgTypeEnum actEnum : actArr) {
            if (actEnum.getChangeType().equals(PropertyValueConstants.ACC_CHANGE_TYPE_IN)
                    && actEnum.getChangeType().equals(type) && actEnum.getSource().equals(source)) {
                return actEnum.getName();
            } else if (actEnum.getChangeType().equals(PropertyValueConstants.ACC_CHANGE_TYPE_OUT)
                    && actEnum.getChangeType().equals(type) && actEnum.getSource().equals(source)) {
                return actEnum.getName();
            }
        }
        return "其他";
    }

    public static AccChgTypeEnum getEnumBySource(Integer type, Integer source) {
        AccChgTypeEnum[] actArr = AccChgTypeEnum.values();
        for (AccChgTypeEnum actEnum : actArr) {
            if (actEnum.getChangeType().equals(PropertyValueConstants.ACC_CHANGE_TYPE_IN)
                    && actEnum.getChangeType().equals(type) && actEnum.getSource().equals(source)) {
                return actEnum;
            } else if (actEnum.getChangeType().equals(PropertyValueConstants.ACC_CHANGE_TYPE_OUT)
                    && actEnum.getChangeType().equals(type) && actEnum.getSource().equals(source)) {
                return actEnum;
            }
        }
        return null;
    }

    /**
     * @return Integer 取得域 changeType 的方法。
     */
    public Integer getChangeType() {
        return changeType;
    }

    /**
     * @param changeType 对域 changeType 的设置方法.
     */
    public void setChangeType(Integer changeType) {
        this.changeType = changeType;
    }

    /**
     * @return Integer 取得域 source 的方法。
     */
    public Integer getSource() {
        return source;
    }

    /**
     * @param source 对域 source 的设置方法.
     */
    public void setSource(Integer source) {
        this.source = source;
    }

    /**
     * @return String 取得域 name 的方法。
     */
    public String getName() {
        return name;
    }

    /**
     * @param name 对域 name 的设置方法.
     */
    public void setName(String name) {
        this.name = name;
    }

}
